package common

import (
  "encoding/xml"
  "os"
  "reflect"
)
//消息媒体
type MediaEntity struct {
  Title string
  Description string `json:"description"`
  MediaId string `json:"media_id"`
  ThumbMediaId string `json:"thumb_media_id"`
  Content string `json:"content"`
  MusicUrl string  `json:"musicurl"`
  HqMusicUrl string `json:"hqmusicurl"`
  Url string `json:"url"`
  PicUrl string `json:"picurl"`
}
func (me MediaEntity)ToXml(removeWrapper ...bool)string{
  flag:=false
  if len(removeWrapper)>0{
    flag=removeWrapper[0]
  }
  typ:=reflect.TypeOf(me)
  typName:=typ.Name()
  resultBytes,_:=xml.Marshal(me)
  result:=string(resultBytes)
  if flag{
    splitLen:=len("<"+typName+">")
    result=result[splitLen:len(result)-(splitLen+1)]
  }
  return result
}

type CardEntity struct {
  CardId string `json:"card_id"`
}
type MiniProgramEntity struct {
  Title string `json:"title"`
  AppId string `json:"appid"`
  PagePath string `json:"pagepath"`
  ThumbMediaId string `json:"thumb_media_id"`
}
//图文素材
type News struct {
  Title string `json:"title"`
  ThumbMediaId string  `json:"thumb_media_id"`
  Author string  `json:"author"`
  Digest string `json:"digest"`
  ShowCoverPic int `json:"show_cover_pic"`
  Content string  `json:"content"`
  ContentSourceUrl string `json:"content_source_url"` //图文消息的原文地址，即点击“阅读原文”后的UR
  NeedOpenComment int `json:"need_open_comment"` //是否打开评论，0不打开，1打开
  OnlyFansCanComment int `json:"only_fans_can_comment"` //是否粉丝才可评论，0所有人可评论，1粉丝才可评论
}
//素材
type Material struct {
  Title string `json:"title"`
  Introduction string `json:"introduction"`
  MediaId string `json:"media_id"`
  Url string `json:"url"`
  Media *os.File `json:"-"`
  Type string `json:"type"`
  CreateAt int `json:"created_at"`
  NewsItem []News `json:"news_item"`
  Name string `json:"name"`
  UpdateTime int `json:"update_time"`
}
//评论
type Comment struct {
  UserCommentId int  `json:"user_comment_id"`
  OpenId string `json:"openid"`
  CreateTime int `json:"create_time"`
  Content string  `json:"content"`
  CommentType int  `json:"comment_type"`
  Reply CommentReply `json:"reply"`
}
//作者回复
type CommentReply struct {
  Content string  `json:"content"`
  CreateTime int `json:"create_time"`
}
